--- title: "7、完全二叉树的权值" created: 2025-11-28 tags: - 算法 --- # 7、完全二叉树的权值 ## 题目 [完全二叉树的权值](https://www.lanqiao.cn/paper/3842/problem/183/) ![[image-e404b45c.png]] ## 思路分析 ![[image-82d6dc65.png]] 分析老半天 找到了一堆性质 发现好像只需要返璞归真 对于每个i 可以通过$log\_2i$算出它是第几层的(从0开始) 那么只需要用一个map 以层为键 以总和为值 就可以算出每层的总和 ![[image-e821760a.png]] floor 向下取整 log2() 计算$log\_2i$返回浮点数 ## 代码实现 ```cpp #include using namespace std; map m; int main() { int n;cin>>n; for(int i=1;i<=n;i++){ int x;cin>>x; int cur=floor(log2(i)); m[cur]+=x; } int maxc=-1,maxv=-1; for(auto t:m){ if(t.second>maxv){ maxv=t.second; maxc=t.first; } } cout<